<!DOCTYPE html>
<html lang="zh-CN">
<head>
  <meta charset="UTF-8">
<meta name="viewport" content="width=device-width">
<meta name="theme-color" content="#222"><meta name="generator" content="Hexo 6.1.0">


  <link rel="apple-touch-icon" sizes="180x180" href="/images/apple-touch-icon-next.png">
  <link rel="icon" type="image/png" sizes="32x32" href="/images/favicon-32x32-next.png">
  <link rel="icon" type="image/png" sizes="16x16" href="/images/favicon-16x16-next.png">
  <link rel="mask-icon" href="/images/logo.svg" color="#222">

<link rel="stylesheet" href="/css/main.css">



<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@6.1.1/css/all.min.css" integrity="sha256-DfWjNxDkM94fVBWx1H5BMMp0Zq7luBlV8QRcSES7s+0=" crossorigin="anonymous">
  <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/animate.css@3.1.1/animate.min.css" integrity="sha256-PR7ttpcvz8qrF57fur/yAx1qXMFJeJFiA6pSzWi0OIE=" crossorigin="anonymous">

<script class="next-config" data-name="main" type="application/json">{"hostname":"example.com","root":"/","images":"/images","scheme":"Pisces","darkmode":false,"version":"8.11.1","exturl":false,"sidebar":{"position":"left","display":"post","padding":18,"offset":12},"copycode":false,"bookmark":{"enable":false,"color":"#222","save":"auto"},"mediumzoom":false,"lazyload":false,"pangu":false,"comments":{"style":"tabs","active":null,"storage":true,"lazyload":false,"nav":null},"stickytabs":false,"motion":{"enable":true,"async":false,"transition":{"post_block":"fadeIn","post_header":"fadeInDown","post_body":"fadeInDown","coll_header":"fadeInLeft","sidebar":"fadeInUp"}},"prism":false,"i18n":{"placeholder":"搜索...","empty":"没有找到任何搜索结果：${query}","hits_time":"找到 ${hits} 个搜索结果（用时 ${time} 毫秒）","hits":"找到 ${hits} 个搜索结果"}}</script><script src="/js/config.js"></script>

    <meta name="description" content="网络基础知识：IP协议 IP协议  IP协议提供了一种分层的、与硬件无关的寻址系统，它可以在复杂的路由式网络中传递数据所需的服务。IP协议可以将多个交换网络连接起来，在源地址和目的地址之间传送数据包。同时，它还提供数据重新组装功能，以适应不同网络对数据包大小的要求。    一、IP协议工作方式在一个路由式网络中，源地址主机向目标地址主机发送数据时，由于网络分同网段和不同网段两种情况： 1、同网段如">
<meta property="og:type" content="article">
<meta property="og:title" content="网络基础知识：IP协议">
<meta property="og:url" content="http://example.com/2022/09/26/%E7%BD%91%E7%BB%9C%E5%9F%BA%E7%A1%80%E7%9F%A5%E8%AF%86%EF%BC%9AIP%E5%8D%8F%E8%AE%AE/index.html">
<meta property="og:site_name" content="Youan">
<meta property="og:description" content="网络基础知识：IP协议 IP协议  IP协议提供了一种分层的、与硬件无关的寻址系统，它可以在复杂的路由式网络中传递数据所需的服务。IP协议可以将多个交换网络连接起来，在源地址和目的地址之间传送数据包。同时，它还提供数据重新组装功能，以适应不同网络对数据包大小的要求。    一、IP协议工作方式在一个路由式网络中，源地址主机向目标地址主机发送数据时，由于网络分同网段和不同网段两种情况： 1、同网段如">
<meta property="og:locale" content="zh_CN">
<meta property="og:image" content="https://s2.loli.net/2022/12/06/YzBPJa9vdTbSOZ5.png">
<meta property="og:image" content="https://s2.loli.net/2022/12/06/5Y4Z8b6qXREH72w.png">
<meta property="og:image" content="https://s2.loli.net/2022/12/06/AcF83xRZ92SIXGa.png">
<meta property="og:image" content="https://s2.loli.net/2022/12/06/DMBaLTeIc3vRwiH.jpg">
<meta property="article:published_time" content="2022-09-25T16:00:00.000Z">
<meta property="article:modified_time" content="2022-12-06T08:46:16.796Z">
<meta property="article:author" content="lee">
<meta property="article:tag" content="IP协议">
<meta property="article:tag" content="网络">
<meta name="twitter:card" content="summary">
<meta name="twitter:image" content="https://s2.loli.net/2022/12/06/YzBPJa9vdTbSOZ5.png">


<link rel="canonical" href="http://example.com/2022/09/26/%E7%BD%91%E7%BB%9C%E5%9F%BA%E7%A1%80%E7%9F%A5%E8%AF%86%EF%BC%9AIP%E5%8D%8F%E8%AE%AE/">



<script class="next-config" data-name="page" type="application/json">{"sidebar":"","isHome":false,"isPost":true,"lang":"zh-CN","comments":true,"permalink":"http://example.com/2022/09/26/%E7%BD%91%E7%BB%9C%E5%9F%BA%E7%A1%80%E7%9F%A5%E8%AF%86%EF%BC%9AIP%E5%8D%8F%E8%AE%AE/","path":"2022/09/26/网络基础知识：IP协议/","title":"网络基础知识：IP协议"}</script>

<script class="next-config" data-name="calendar" type="application/json">""</script>
<title>网络基础知识：IP协议 | Youan</title>
  





  <noscript>
    <link rel="stylesheet" href="/css/noscript.css">
  </noscript>
</head>

<body itemscope itemtype="http://schema.org/WebPage" class="use-motion">
  <div class="headband"></div>

  <main class="main">
    <header class="header" itemscope itemtype="http://schema.org/WPHeader">
      <div class="header-inner"><div class="site-brand-container">
  <div class="site-nav-toggle">
    <div class="toggle" aria-label="切换导航栏" role="button">
        <span class="toggle-line"></span>
        <span class="toggle-line"></span>
        <span class="toggle-line"></span>
    </div>
  </div>

  <div class="site-meta">

    <a href="/" class="brand" rel="start">
      <i class="logo-line"></i>
      <p class="site-title">Youan</p>
      <i class="logo-line"></i>
    </a>
      <p class="site-subtitle" itemprop="description">好记性不如烂笔头</p>
  </div>

  <div class="site-nav-right">
    <div class="toggle popup-trigger">
    </div>
  </div>
</div>



<nav class="site-nav">
  <ul class="main-menu menu"><li class="menu-item menu-item-home"><a href="/" rel="section"><i class="fa fa-home fa-fw"></i>首页</a></li><li class="menu-item menu-item-tags"><a href="/tags/" rel="section"><i class="fa fa-tags fa-fw"></i>标签</a></li><li class="menu-item menu-item-categories"><a href="/categories/" rel="section"><i class="fa fa-th fa-fw"></i>分类</a></li><li class="menu-item menu-item-archives"><a href="/archives/" rel="section"><i class="fa fa-archive fa-fw"></i>归档</a></li>
  </ul>
</nav>




</div>
        
  
  <div class="toggle sidebar-toggle" role="button">
    <span class="toggle-line"></span>
    <span class="toggle-line"></span>
    <span class="toggle-line"></span>
  </div>

  <aside class="sidebar">

    <div class="sidebar-inner sidebar-nav-active sidebar-toc-active">
      <ul class="sidebar-nav">
        <li class="sidebar-nav-toc">
          文章目录
        </li>
        <li class="sidebar-nav-overview">
          站点概览
        </li>
      </ul>

      <div class="sidebar-panel-container">
        <!--noindex-->
        <div class="post-toc-wrap sidebar-panel">
            <div class="post-toc animated"><ol class="nav"><li class="nav-item nav-level-1"><a class="nav-link" href="#%E7%BD%91%E7%BB%9C%E5%9F%BA%E7%A1%80%E7%9F%A5%E8%AF%86%EF%BC%9AIP%E5%8D%8F%E8%AE%AE"><span class="nav-number">1.</span> <span class="nav-text">网络基础知识：IP协议</span></a><ol class="nav-child"><li class="nav-item nav-level-2"><a class="nav-link" href="#%E4%B8%80%E3%80%81IP%E5%8D%8F%E8%AE%AE%E5%B7%A5%E4%BD%9C%E6%96%B9%E5%BC%8F"><span class="nav-number">1.1.</span> <span class="nav-text">一、IP协议工作方式</span></a><ol class="nav-child"><li class="nav-item nav-level-3"><a class="nav-link" href="#1%E3%80%81%E5%90%8C%E7%BD%91%E6%AE%B5"><span class="nav-number">1.1.1.</span> <span class="nav-text">1、同网段</span></a></li><li class="nav-item nav-level-3"><a class="nav-link" href="#2%E3%80%81%E4%B8%8D%E5%90%8C%E7%BD%91%E6%AE%B5"><span class="nav-number">1.1.2.</span> <span class="nav-text">2、不同网段</span></a></li></ol></li><li class="nav-item nav-level-2"><a class="nav-link" href="#IP%E5%8D%8F%E8%AE%AE%E5%8C%85%E7%BB%93%E6%9E%84"><span class="nav-number">1.2.</span> <span class="nav-text">IP协议包结构</span></a></li><li class="nav-item nav-level-2"><a class="nav-link" href="#%E4%BA%8C%E3%80%81IP%E5%9C%B0%E5%9D%80"><span class="nav-number">1.3.</span> <span class="nav-text">二、IP地址</span></a><ol class="nav-child"><li class="nav-item nav-level-3"><a class="nav-link" href="#1%E3%80%81%E7%AE%80%E4%BB%8B"><span class="nav-number">1.3.1.</span> <span class="nav-text">1、简介</span></a></li><li class="nav-item nav-level-3"><a class="nav-link" href="#2%E3%80%81IP%E5%9C%B0%E5%9D%80%E7%9A%84%E7%BB%84%E6%88%90"><span class="nav-number">1.3.2.</span> <span class="nav-text">2、IP地址的组成</span></a></li><li class="nav-item nav-level-3"><a class="nav-link" href="#3%E3%80%81IP%E5%9C%B0%E5%9D%80%E7%9A%84%E5%88%86%E7%B1%BB"><span class="nav-number">1.3.3.</span> <span class="nav-text">3、IP地址的分类</span></a></li><li class="nav-item nav-level-3"><a class="nav-link" href="#4%E3%80%81%E7%89%B9%E6%AE%8AIP%E5%9C%B0%E5%9D%80"><span class="nav-number">1.3.4.</span> <span class="nav-text">4、特殊IP地址</span></a></li><li class="nav-item nav-level-3"><a class="nav-link" href="#5%E3%80%81%E5%AD%90%E7%BD%91%E6%8E%A9%E7%A0%81"><span class="nav-number">1.3.5.</span> <span class="nav-text">5、子网掩码</span></a></li></ol></li></ol></li></ol></div>
        </div>
        <!--/noindex-->

        <div class="site-overview-wrap sidebar-panel">
          <div class="site-author site-overview-item animated" itemprop="author" itemscope itemtype="http://schema.org/Person">
  <p class="site-author-name" itemprop="name">lee</p>
  <div class="site-description" itemprop="description">记录备份</div>
</div>
<div class="site-state-wrap site-overview-item animated">
  <nav class="site-state">
      <div class="site-state-item site-state-posts">
        <a href="/archives/">
          <span class="site-state-item-count">10</span>
          <span class="site-state-item-name">日志</span>
        </a>
      </div>
      <div class="site-state-item site-state-categories">
          <a href="/categories/">
        <span class="site-state-item-count">6</span>
        <span class="site-state-item-name">分类</span></a>
      </div>
      <div class="site-state-item site-state-tags">
          <a href="/tags/">
        <span class="site-state-item-count">12</span>
        <span class="site-state-item-name">标签</span></a>
      </div>
  </nav>
</div>
  <div class="links-of-author site-overview-item animated">
      <span class="links-of-author-item">
        <a href="https://github.com/wslmh" title="GitHub → https:&#x2F;&#x2F;github.com&#x2F;wslmh" rel="noopener" target="_blank"><i class="fab fa-github fa-fw"></i>GitHub</a>
      </span>
      <span class="links-of-author-item">
        <a href="mailto:wslmh@outlook.com" title="E-Mail → mailto:wslmh@outlook.com" rel="noopener" target="_blank"><i class="fa fa-envelope fa-fw"></i>E-Mail</a>
      </span>
  </div>



        </div>
      </div>
    </div>
  </aside>
  <div class="sidebar-dimmer"></div>


    </header>

    
  <div class="back-to-top" role="button" aria-label="返回顶部">
    <i class="fa fa-arrow-up"></i>
    <span>0%</span>
  </div>

<noscript>
  <div class="noscript-warning">Theme NexT works best with JavaScript enabled</div>
</noscript>


    <div class="main-inner post posts-expand">


  


<div class="post-block">
  
  

  <article itemscope itemtype="http://schema.org/Article" class="post-content" lang="zh-CN">
    <link itemprop="mainEntityOfPage" href="http://example.com/2022/09/26/%E7%BD%91%E7%BB%9C%E5%9F%BA%E7%A1%80%E7%9F%A5%E8%AF%86%EF%BC%9AIP%E5%8D%8F%E8%AE%AE/">

    <span hidden itemprop="author" itemscope itemtype="http://schema.org/Person">
      <meta itemprop="image" content="/images/avatar.gif">
      <meta itemprop="name" content="lee">
    </span>

    <span hidden itemprop="publisher" itemscope itemtype="http://schema.org/Organization">
      <meta itemprop="name" content="Youan">
      <meta itemprop="description" content="记录备份">
    </span>

    <span hidden itemprop="post" itemscope itemtype="http://schema.org/CreativeWork">
      <meta itemprop="name" content="网络基础知识：IP协议 | Youan">
      <meta itemprop="description" content="">
    </span>
      <header class="post-header">
        <h1 class="post-title" itemprop="name headline">
          网络基础知识：IP协议
        </h1>

        <div class="post-meta-container">
          <div class="post-meta">
    <span class="post-meta-item">
      <span class="post-meta-item-icon">
        <i class="far fa-calendar"></i>
      </span>
      <span class="post-meta-item-text">发表于</span>

      <time title="创建时间：2022-09-26 00:00:00" itemprop="dateCreated datePublished" datetime="2022-09-26T00:00:00+08:00">2022-09-26</time>
    </span>
    <span class="post-meta-item">
      <span class="post-meta-item-icon">
        <i class="far fa-calendar-check"></i>
      </span>
      <span class="post-meta-item-text">更新于</span>
      <time title="修改时间：2022-12-06 16:46:16" itemprop="dateModified" datetime="2022-12-06T16:46:16+08:00">2022-12-06</time>
    </span>
    <span class="post-meta-item">
      <span class="post-meta-item-icon">
        <i class="far fa-folder"></i>
      </span>
      <span class="post-meta-item-text">分类于</span>
        <span itemprop="about" itemscope itemtype="http://schema.org/Thing">
          <a href="/categories/%E7%BD%91%E7%BB%9C/" itemprop="url" rel="index"><span itemprop="name">网络</span></a>
        </span>
    </span>

  
</div>

        </div>
      </header>

    
    
    
    <div class="post-body" itemprop="articleBody">
        <h1 id="网络基础知识：IP协议"><a href="#网络基础知识：IP协议" class="headerlink" title="网络基础知识：IP协议"></a>网络基础知识：IP协议</h1><blockquote>
<p><strong>IP协议</strong><br>  IP协议提供了一种分层的、与硬件无关的寻址系统，它可以在复杂的路由式网络中传递数据所需的服务。IP协议可以将多个交换网络连接起来，在源地址和目的地址之间传送数据包。同时，它还提供数据重新组装功能，以适应不同网络对数据包大小的要求。  </p>
</blockquote>
<h2 id="一、IP协议工作方式"><a href="#一、IP协议工作方式" class="headerlink" title="一、IP协议工作方式"></a>一、IP协议工作方式</h2><p>在一个路由式网络中，源地址主机向目标地址主机发送数据时，由于网络分同网段和不同网段两种情况：</p>
<h3 id="1、同网段"><a href="#1、同网段" class="headerlink" title="1、同网段"></a>1、同网段</h3><p>如果源地址主机和目标地址主机在同一网段，目标IP地址被ARP协议（Address Resolution Protocol 地址解析协议）解析为MAC地址，然后根据MAC地址，源主机直接把数据包发给目标主机。</p>
<h3 id="2、不同网段"><a href="#2、不同网段" class="headerlink" title="2、不同网段"></a>2、不同网段</h3><p>如果源地址主机和目标地址主机在不同网段，数据包按以下过程发送：</p>
<p>1、 当前网关（一般为路由器）的IP地址被ARP协议解析为MAC地址。根据该MAC地址，源主机将数据包发送到网关。  </p>
<p>2、 网关根据数据包中的网段ID寻找目标。如果找到，将数据包发送到目标网段；如果找不到，那么重复步骤1，将数据包发送到上一级网关。</p>
<p>3、数据包经过网关被发送到正确的网段中。目标IP地址被ARP协议解析为MAC地址。根据MAC地址，数据包被发送给目标地址的主机。</p>
<span id="more"></span>


<h2 id="IP协议包结构"><a href="#IP协议包结构" class="headerlink" title="IP协议包结构"></a>IP协议包结构</h2><p>在TCP&#x2F;IP协议中，使用IP协议传输数据的包被称为IP数据包。每个数据包都包含IP协议规定的内容。IP协议规定的这些内容被称为IP数据包问（IP Datagram）或者IP数据报。  </p>
<p>IP数据报文由首部和数据两部分组成。首部的前一部分是固定长度，共20字节，是所有IP数据报必须具有的；在首部的固定部分的后面是一些可选字段，其长度是可变的。</p>
<p><img src="https://s2.loli.net/2022/12/06/YzBPJa9vdTbSOZ5.png" alt="IP数据报格式.png"></p>
<p><strong>版本（Version）：</strong>  占4位，标识IP协议的版本。通信双方使用的IP协议版本必须一致。目前IPv4协议版本号为4；IPv6的版本号为6。</p>
<p><strong>首部长度（网际报头长度IHL）：</strong> 占4位，可表示的最大十进制数值是15。这个字段所表示数的单位是32位字长（32位字长即4字节）。因此，当IP的首部长度为1111时（即十进制15），首部长度就达到60字节。  </p>
<blockquote>
<p>当IP分组的首部长度不是4字节的整数倍时，必须利用最后的填充字段加以填充。数据部分永远在4字节的整数倍开始，这样在实现IP协议时较为方便。  </p>
</blockquote>
<blockquote>
<p>首部长度限制为60字节的缺点是，长度有时可能不够用，之所以限制长度为60字节，是希望用户尽量减少开销。最常用的首部长度就是20字节（即首部长度为0101），这时不适用任何可选选项。</p>
</blockquote>
<p><strong>区分服务（TOS）：</strong> 也称为服务类型，占8位，用来获得更好的服务。这个字段在旧标准中叫做服务类型，但实际上一直没有被使用过。1998年IETF把这个字段改名为区分服务。只有在使用区分服务时，这个字段才起作用。</p>
<p><strong>总长度（totlen）：</strong> 首部和数据的长度之和，单位为字节。总长度的字段为16位，因此数据报的最大长度为 2^16-1&#x3D;65535字节。</p>
<p><strong>标识（identification）：</strong> 用来标识数据报，占16位。IP协议在存储器中维持一个计数器。每产生一个数据报，计数器就加1，并将此值赋值给标识字段。当数据报的长度超过网络的MTU，而必须分片时，这个标识字段的值就被赋值到所有的数据报的标识字段中。具有相同标识字段值的分片报文会被重组成原来的数据报。</p>
<blockquote>
<p>MTU：Maximum Transmission Unit 最大传输单元，是指网络能够传输的最大数据包大小，以字节为单位。MTU的大小决定了发送端一次能够发送报文的最大字节数。如果MTU超过了接收端所能够承受的最大值，或者是超过了发送路径上途经的某台设备所能够承受的最大值，就会造成报文分片甚至丢弃，加重网络传输的负担。如果太小，那实际传送的数据量就会过小，影响传输效率。<br>RFC标准定义以太网的默认MTU值为1500</p>
</blockquote>
<p><strong>标志（flag）：</strong> 占3位。第一位未使用，值为0。第二位称为DF（不分片），表示是否允许分片；取值为0时，表示允许分片；取值为1时，表示不允许分片。第三位称为MF（更多分片），表示是否还有分片正在传输；设置为0时，表示没有更多分片需要发送，或数据报没有分片。</p>
<p><strong>片偏移（offsetfrag）：</strong> 占13位。当报文被分片后，该字段标记该分片在原报文中的相对位置。片偏移以8个字节为偏移单位。所以，除了最后一个分片，其他分片的偏移值都是8字节（64位）的整数倍。</p>
<p><strong>生存时间（TTL）：</strong> 表示数据报在网络中的寿命，占8位。该字段由发出数据报的源主机设置。其目的是防止无法交付的数据报无限制地在网络中传输，从而消耗网络资源。路由器在转发数据报之前，先把TTL值减1；若TTL值减少到0，则丢弃这个数据报，不再转发。因此，TTL指明数据报在网络中最多可经过多少个路由器。TTL的最大值为255。若把TTL的初始值设为1，则表示这个数据报只能在本局域网中传送。</p>
<p><strong>协议：</strong>表示该数据报文所携带的数据所使用的协议类型，占8位。该字段可以方便目的主机的IP层直到按照什么协议来处理数据部分。不同的协议有专门的协议号。例如TCP的协议号为6，UDP的协议号为17，ICMP的协议号为1。</p>
<blockquote>
<p>因特网控制报文协议ICMP（Internet Control Message Protocol）是一个差错报告机制，是TCP&#x2F;IP协议簇中的一个重要子协议，通常被IP层或更高层协议（TCP或UDP）使用，属于网络层协议，主要用于在IP主机和路由器之间传递控制消息，用于报告主机是否可达、路由是否可用等。这些控制消息虽然并不传输用户数据，但是对于收集各种网络信息、诊断和排除各种网络故障以及用户数据的传递具有至关重要的作用。</p>
</blockquote>
<p><strong>首部检验和（checksum）：</strong> 用于校验数据报的首部，占16位。数据报每经过一个路由器，首部的字段都可能发生变化（如TTL），所以需要重新校验。而数据部分不发生变化，所以不用重新生成校验值。</p>
<p><strong>源地址：</strong> 表示数据报的源IP地址，占32位。</p>
<p><strong>目的地址：</strong> 表示数据报的目的IP地址，占32位。该字段用于校验发送是否正确。</p>
<p><strong>可选字段：</strong> 该字段用于一些可选的报头设置，是数据报中的一个可变长的可选信息。主要用于测试、调试和安全的目的。这些选项包括：</p>
<ul>
<li>安全和处理限制（用于军事领域，详细内容参见 RFC 1108[Kent 1991]）</li>
<li>记录路径（让每个路由器都记下它的 I P地址，见7 . 3节）</li>
<li>时间戳（让每个路由器都记下它的 I P地址和时间，见7 . 4节）</li>
<li>宽松的源站选路（为数据报指定一系列必须经过的 I P地址，见8 . 5节）</li>
<li>严格的源站选路（与宽松的源站选路类似，但是要求只能经过指定的这些地址，不能经过其他的地址）。</li>
</ul>
<p><strong>填充：</strong> 由于可选字段中的长度是不固定的，使用若干个0填充该字段，可以保证整个包头的长度是32位的整数倍。</p>
<p><strong>数据部分：</strong> 表示传输层的数据，如保存TCP、UDP、ICMP或IGMP的数据。数据部分的长度不固定。</p>
<h2 id="二、IP地址"><a href="#二、IP地址" class="headerlink" title="二、IP地址"></a>二、IP地址</h2><h3 id="1、简介"><a href="#1、简介" class="headerlink" title="1、简介"></a>1、简介</h3><p>IP地址（InternetProtocol Address），缩写为IPAdress，是一种在Internet上的给主机统一编址的地址格式，也称为网络协议（IP协议）地址。它为互联网上的每一个网络和每一台主机分配一个逻辑地址，常见的IP地址，分为IPv4与IPv6两大类，当前广泛应用的是IPv4，目前IPv4几乎耗尽，下一阶段必然会进行版本升级到IPv6；如无特别注明，一般我们讲的的IP地址所指的是IPv4。</p>
<p><img src="https://s2.loli.net/2022/12/06/5Y4Z8b6qXREH72w.png" alt="IPAddressVersion.png"></p>
<h3 id="2、IP地址的组成"><a href="#2、IP地址的组成" class="headerlink" title="2、IP地址的组成"></a>2、IP地址的组成</h3><p>IP地址由两部分组成：</p>
<ul>
<li>网络部分：标明具体的网段相同是同一网段，可ping通</li>
<li>主机部分：标明具体的某个节点，也就是某个网络中的特定的计算机号码</li>
</ul>
<h3 id="3、IP地址的分类"><a href="#3、IP地址的分类" class="headerlink" title="3、IP地址的分类"></a>3、IP地址的分类</h3><p>IP地址分为A、B、C、D、E五类，其中A、B、C这三类是比较常用的地址，D、E类为特殊地址。</p>
<p><img src="https://s2.loli.net/2022/12/06/AcF83xRZ92SIXGa.png" alt="IP地址分类.png"></p>
<p><strong>A类：</strong>  (1.0.0.0-126.0.0.0)（默认子网掩码：255.0.0.0或 0xFF000000）第一个字节为网络号，后三个字节为主机号。该类IP地址的最前面为“0”，所以地址的网络号取值于1~126之间。一般用于大型网络。</p>
<p><strong>B类：</strong> (128.0.0.0-191.255.0.0)（默认子网掩码：255.255.0.0或0xFFFF0000）前两个字节为网络号，后两个字节为主机号。该类IP地址的最前面为“10”，所以地址的网络号取值于128~191之间。一般用于中等规模网络。</p>
<p><strong>C类：</strong> (192.0.0.0-223.255.255.0)（子网掩码：255.255.255.0或 0xFFFFFF00）前三个字节为网络号，最后一个字节为主机号。该类IP地址的最前面为“110”，所以地址的网络号取值于192~223之间。一般用于小型网络。</p>
<p><strong>D类：</strong> 是多播地址。该类IP地址的最前面为“1110”，所以地址的网络号取值于224~239之间。一般用于多路广播用户。</p>
<p><strong>E类：</strong> 是保留地址。该类IP地址的最前面为“1111”，所以地址的网络号取值于240~255之间。</p>
<h3 id="4、特殊IP地址"><a href="#4、特殊IP地址" class="headerlink" title="4、特殊IP地址"></a>4、特殊IP地址</h3><p>1、环回地址</p>
<p>127.x.X.X这样的网络地址，称之为环回地址（通常使用127.0.0.1)，环回地址为本机网络软件测试和进程通信提供了方便。发送到这个地址的数据包不会输出到实体的网络上，而是送给系统的环回接口，使用环回地址作为目的地址的数据包不应该出现在网络中。环回地址使得A类地址少了一个网络号。</p>
<p>2、网络地址</p>
<p>主要是用于标识不同的网络，它不指向具体的哪一个主机或设备，而是标识属于同一个网络的主机或网络设备的集合。对任意一个P地址来说，将其地址结构中的主机号全部取0，就得到了主机所处的网络地址。例如，某主机IP地址为134.89.32.33，它属于B类地址，将其后两个主机号字节全部取0，则得到这个主机所处的网络地址为134.89.0.0。当一个数据包到达一个网络时，该网络的路由器首先判断数据包的目的网络是否与本地网络号相匹配，如果两个地址不匹配，那么路由器将根据合适的算法对数据包进行转发；只有两个地址相互匹配，路由器才会查找相应的主机号进行主机的匹配，最后将数据包发送给指定的主机。网络地址占用了A、B、C三类地址中的每个网络号下的一个主机号。</p>
<p>3、直接广播地址</p>
<p>在一个网络内，直接广播地址是指对应主机号全部取1而得到的IP地址，广播地址代表本网络内的所有网络设备，使用该地址可以向属于同一个网段内的所有网络设备传送数据。例如：一个标准C类地址202.197.15.44，由于它的网络号由前面3个字节组成，主机号仅是最后一个字节，将主机号位全部取1得到的地址是202.197.15.255，这个地址即是这个网络的广播地址。直接广播地址和上面说的网络地址一样,也使得某网络中的1个主机号不能被分配给具体主机。</p>
<p>A、B、C三类网络的网络地址和广播地址结构如下所示：</p>
<p>A类：网络地址为:x.0.0.0，广播地址为:X.255.255.255；</p>
<p>B类：网络地址为:x.x.0.0，广播地址为:X.X.255.255；</p>
<p>C类：网络地址为:x.x.x.0，广播地址为:X.X.X.255。</p>
<p>4、受限广播地址</p>
<p>IP地址32位全部为1，即“255.255.255.255”,代表本地受限广播。该地址用于向本地网络中的所有主机发送广播信息。广播地址本质上是个E类地址。</p>
<p>5、本网络上的特定主机</p>
<p>当用户想与本网络内部特定主机通信时，可以将网络号对应字节全部设置为0进行简化。如当具有B类地址的某个主机发送数据包时，数据包中的目标IP地址为0.0.11.32，则表示数据包要发送到网络中主机号为11.32的主机处。该地址本质上是个A类地址。</p>
<p>6、本网络本主机</p>
<p>IP地址32位全部为0，即“0.0.0.0”，表示本网络上的本主机。这个地址用某个主机启动时需要通信，但暂时不知道自己的IP地址，此时主机为了获得一个有效IP地址，将发送一个数据包给有限广播地址，并用全0地址来标识自己。接收方知道发送方还没有IP地址，就会采用一种特殊的方式来发送回答，此地址不应该作为目的地址使用。该地址本质上是个A类地址。</p>
<p>以上6中特殊的IP地址不能分配给任何主机，下面的专用地址却可以被分配给多个主机，当然，这些主机之间互不关联，他们处于不同的局域网内。</p>
<h3 id="5、子网掩码"><a href="#5、子网掩码" class="headerlink" title="5、子网掩码"></a>5、子网掩码</h3><p>标准IP地址使用网络号和主机码两层地址结构，这样当大量的个人用户和小型局域网用户接入互联网时，即使为其分配一个C类网络也会造成IP地址的大量浪费，况且，随着目前Internet用户数量的剧烈增长，IP地址的分配变得格外紧张，为每个物理网络分配一个网络号的做法变得很不现实。</p>
<p>因此，现在流行一种扩展的分组编址方案来节省网络号的使用，这种方法称为子网编址,子网掩码将网络进一步划分为若干子网，以避免主机过多而拥堵或过少而IP浪费。子网掩码和IP地址做“与”运算，分离出IP地址中的网络地址和主机地址，用于判断该IP地址是在本地网络上，还是在远程网络网上。目前互联网内的主机基本都已支持子网编址。</p>
<p><strong>子网掩码的组成</strong>  </p>
<p>同IP地址一样，子网掩码是由长度为32位二进制数组成的一个地址，子网掩码32位与IP地址32位相对应，IP地址如果某位是网络地址，则子网掩码为1，否则为0。</p>
<blockquote>
<p>注意：<br>左边连续的1的个数代表网络号的长度，右边连续的0的个数代表主机号的长度。</p>
</blockquote>
<p>子网掩码的表示方法</p>
<p>1、点分十进制表示法。</p>
<p>二进制转换十进制，每8位用点号隔开。</p>
<p>例如：子网掩码二进制11111111.11111111.11111111.00000000，表示为255.255.255.0。</p>
<p>2、CIDR斜线记法。</p>
<p>IP地址&#x2F;n。</p>
<p>例1：192.168.1.100&#x2F;24，其子网掩码表示为255.255.255.0，二进制表示为11111111.11111111.11111111.00000000。</p>
<p>子网掩码和IP地址的关系</p>
<p>根据IP地址和子网掩码，计算网络地址：</p>
<p>①、将IP地址与子网掩码转换成二进制数。</p>
<p>②、将二进制形式的IP 地址与子网掩码做“与”运算。</p>
<p>③、将得出的结果转化为十进制，便得到网络地址。</p>
<p>举个栗子：</p>
<p>IP地址：192.168.10.215</p>
<p>子网掩码：255.255.255.0</p>
<p><img src="https://s2.loli.net/2022/12/06/DMBaLTeIc3vRwiH.jpg" alt="子网划分.jpg"></p>

    </div>

    
    
    

    <footer class="post-footer">
          <div class="post-tags">
              <a href="/tags/IP%E5%8D%8F%E8%AE%AE/" rel="tag"># IP协议</a>
              <a href="/tags/%E7%BD%91%E7%BB%9C/" rel="tag"># 网络</a>
          </div>

        

          <div class="post-nav">
            <div class="post-nav-item">
                <a href="/2022/09/22/CString%E5%86%85%E5%AD%98%E7%94%B3%E8%AF%B7AllocSysString%E5%BA%94%E7%94%A8/" rel="prev" title="CString应用AllocSysString申请内存">
                  <i class="fa fa-chevron-left"></i> CString应用AllocSysString申请内存
                </a>
            </div>
            <div class="post-nav-item">
            </div>
          </div>
    </footer>
  </article>
</div>






</div>
  </main>

  <footer class="footer">
    <div class="footer-inner">


<div class="copyright">
  &copy; 
  <span itemprop="copyrightYear">2023</span>
  <span class="with-love">
    <i class="fa fa-heart"></i>
  </span>
  <span class="author" itemprop="copyrightHolder">lee</span>
</div>
  <div class="powered-by">由 <a href="https://hexo.io/" rel="noopener" target="_blank">Hexo</a> & <a href="https://theme-next.js.org/pisces/" rel="noopener" target="_blank">NexT.Pisces</a> 强力驱动
  </div>

    </div>
  </footer>

  
  <script src="https://cdn.jsdelivr.net/npm/animejs@3.2.1/lib/anime.min.js" integrity="sha256-XL2inqUJaslATFnHdJOi9GfQ60on8Wx1C2H8DYiN1xY=" crossorigin="anonymous"></script>
<script src="/js/comments.js"></script><script src="/js/utils.js"></script><script src="/js/motion.js"></script><script src="/js/next-boot.js"></script>

  





  





</body>
</html>
